// -*- IDL -*-
/*!
 * @file OpenRTM.idl
 * @brief OpenRTM interface definition
 * @date $Date: 2007-09-21 09:19:33 $
 * @author Noriaki Ando <n-ando@aist.go.jp>
 *
 * Copyright (C) 2007
 *     Task-intelligence Research Group,
 *     Intelligent Systems Research Institute,
 *     National Institute of
 *         Advanced Industrial Science and Technology (AIST), Japan
 *     All rights reserved.
 *
 * $Id: OpenRTM.idl 726 2008-05-14 03:05:42Z n-ando $
 *
 */

#include "RTC.idl"

#pragma prefix "openrtm.aist.go.jp"

module RTC
{

  interface DataFlowComponent
    : RTObject, DataFlowParticipant
  {
  };

  interface FiniteStateMachineComponent
    : RTObject, FsmParticipant
  {
  };

  interface DataFlowFiniteStateMachineComponent
    : RTObject, DataFlowParticipant, FsmParticipant
  {
  };

  interface DataFlowMultiModeComponent
    : RTObject, DataFlowParticipant, MultiModeObject
  {
  };

  interface FiniteStateMachineMultiModeComponent
    : RTObject, FsmParticipant, MultiModeObject
  {
  };

  interface DataFlowFiniteStateMachineMultiModeComponent
    : RTObject, DataFlowParticipant, FsmParticipant, MultiModeObject
  {
  };


  interface ExtTrigExecutionContextService
    : ExecutionContextService
  {
    void tick();
  };

};
